package com.ym.medical.service;

import com.github.pagehelper.PageInfo;
import com.ym.core.utils.tkmybatis.IBaseSV;
import com.ym.medical.domain.entity.SysAuditEntity;
import com.ym.medical.domain.param.PlatformAccountExampleParam;
import com.ym.medical.domain.param.SysAuditParam;
import com.ym.medical.domain.vo.SysAuditVo;
import com.ym.medical.domain.vo.TdDetailSummaryVO;


import java.util.Date;
import java.util.List;

/**
 * ComputerName:LAPTOP-I6GKDIFQ
 * Author:admin
 * Date: 2019-08-17
 * Time: 11:12:04
 * 月初出账，月底打款服务接口
 */
public interface ISysAuditSV extends IBaseSV<SysAuditEntity> {
    /**
     * PC端-账务系统 平台抽成金额
     * @param startTime
     * @param endTime
     * @return
     */
    TdDetailSummaryVO tdDetailSummary(Date startTime, Date endTime);

    /**
     * PC端-账务系统-平台账务管理 医生消费收入记录管理
     * @param platformAccountExampleVO
     * @param pageNo
     * @param limit
     */
    PageInfo<SysAuditParam> listPageDocIncomeRecord(PlatformAccountExampleParam platformAccountExampleVO, int pageNo, int limit);

    /**
     * PC端-账务系统-平台账务管理 医生消费收入记录管理
     * @param platformAccountExampleParam

     */
    List<SysAuditParam> listDocIncomeRecord(PlatformAccountExampleParam platformAccountExampleParam);

    /**
     * 系统自动出账
     */
    void autoInsertSysAudit();

    /**
     * 人工出账
     * @param sysId
     * @param sysAuditModelList
     */
    void artificialSysAudit(Long sysId, List<SysAuditParam> sysAuditModelList);

    /**
     * 系统出账记录展示
     * @param platformAccountExampleVO
     * @param pageNo
     * @param limit
     */
    PageInfo<SysAuditVo> listPageSysAudit(PlatformAccountExampleParam platformAccountExampleVO, int pageNo, int limit);

    /**
     * 批量修改
     *
     * @param sysAuditModel
     * @param auditIds
     * @return
     */
    int updateBatchById(SysAuditParam sysAuditModel, Long[] auditIds);

    List<SysAuditVo> listSysAudit(PlatformAccountExampleParam platformAccountExampleVO);

    /**
     * 出账单作废
     * @param auditIds
     */
    void cancelSysAudit(Long[] auditIds);

    /**
     * 出账结算
     * @param auditIds
     * @param sysUserId
     * @return
     */
    int settleSysAudit(Long[] auditIds, Long sysUserId);
}
